package com.haidechizi.designpattern.template.simple;

/**
 * @author haidechizi
 */
public abstract class AbstractCooking implements Cooking {
    /**
     * 做饭
     */
    @Override
    public void cook() {
        // 第一步洗菜
        wash();

        // 第二步切菜
        cut();

        // 第三步倒油
        addOil();

        // 第四步炒菜
        stirFry();

        // 第五步加盐
        addSalt();

        // 第六步出锅
        remove();
    }

    protected abstract void remove();

    protected abstract void addSalt();

    protected abstract void stirFry();

    protected abstract void addOil();

    protected abstract void cut();

    protected abstract void wash();

}
